_____ _    _         _____  _____ _   _          _____   _____  
    / ____| |  | |  /\   |  __ \|_   _| \ | |   /\   / _ \ \ / / _ \ 
   | |  __| |  | | /  \  | |__) | | | |  \| |  /  \ | | | \ V / | | |
   | | |_ | |  | |/ /\ \ |  _  /  | | | . ` | / /\ \| | | |> <| | | |
   | |__| | |__| / ____ \| | \ \ _| |_| |\  |/ ____ \ |_| / . \ |_| |
    \_____|\____/_/    \_\_|  \_\_____|_| \_/_/    \_\___/_/ \_\___/ 
                                                                     
                    ./Guarina0x0
Titulo: HackTheBox - Bounty Hunter
Fecha: 13-09-2021
Descripcion: Enumeracion - XXE - Burp Suite - Enconder URL

Hack The Box - Bounty Hacker Writeup

## Ping:

ping -c1 10.10.11.100

Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos

Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.

## Enumeracion :

Ahora vamos a proceder a ver que servicios tiene esta maquina abiertos para ello vamos a realizar una enumeracion de puertos:

Mediante el parametro --min-rate 5000 va a emitir paquetes no mas lento que 5000 paquetes por segundo

  • Puerto 22 SSH
  • Puerto 80 HTTP
  • Mediante la herramienta WhatWeb vamos a proceder a inspeccionar si estamos ante algun gestor de contenido , ya que nos encontramos con el puerto 80 abierto que nos proporciona el servicio HTTP

    Nos reporta poca cosa , asi que vamos a realizar un escaneo mediante la herramienta Nmap en busqueda de la version y aplicar scripts basicos para obtener mayor informacion

    ## Pagina Web:

    Vamos a proceder abrir la pagina web y poder inspeccionarla

    Podemos ver el codigo fuente que no nos proporciona mayor informacion , por lo que tendremos que aplicar Fuzzing en busqueda de directorios web activos

    ## Fuzzing Web:

    Vamos aplicar Fuzzing mediante la herramienta Wfuzz

    Nos reporta las siguientes rutas:

  • /resources
  • /assets
  • /css
  • /js
  • Estos directorios web el unico interesante es /resources que nos encontraremos antes una nota

    Como no hemos encontrado nada interesante vamos aplicar fuzzing en busqueda de extension .php

    Nos reporta 2 posibles ficheros php potenciales , que vamos a investigar

    El primero /portal que nos redirigue a un fichero php llamado log_submit.php que sirve para reportar una vulnerabilidad

    Si rellenamos el formulario y enviamos la solicitud podemos ver que funciona

    Luego tenemos otro fichero php potencial llamado /db.php , que no sale nada en principio ya que trabajara con el portal anterior para registrar las vulnerabilidades reportadas

    Podemos intentar realizar un curl sobre el fichero para obtener mas detalles del funcionamiento del mismo

    ## Burp Suite:

    Vamos a proceder a usar la herramienta Burp Suite para obtener mas informacion de como se tramita los datos entre los dos ficheros PHP

    Los datos se envia codificados en un metodo llamado "URL enconding" , si enviamos los datos obtenidos al "Repeater" podemos decodificarlos y ver el contenido

    Podemos ver que los datos se tramitan en formato XML , aqui ya podemos estar pensando en realizar un ataque XXE

    ## Ataque XXE:

    Una vulnerabilidad XXE . es una vulnerabilidad de entidad externas XML que afectan a los servicios que se basan en XML.

    Una vulnerabilidad XXE se produce cuando el servicio que analiza o lee y procesa , los mensajes XML enviados por el cliente.

    Podemos ver si es vulnerable , mediante los siguientes pasos

    Tras analizarlo y probarlo podemos ver que es vulnerable a XXE , por lo que vamos aplicar ya "Wrapper" para inyecciones XXE y obtener ficheros , nos podemos ayudar de la siguiente informacion: https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XXE%20Injection/Files/XXE%20PHP%20Wrapper.xml

    Necesitaremos encoder la informacion , primero vamos a intentar obtener el fichero de los usuarios del sistema

    Vamos a copiar el resultado hasheado y vamos a copiar en el apartado data de burp suite

    Vamos a copiar el resultado que nos devulve el portal de vulnerabilidades y vamos a descifrarlo ya que viene cifrado

    Podemos ver como nos muestra perfectamente el fichero /passwd , por lo que ahora vamos a intentar mirar que contiene el fichero db.php que se encuentra en el servidor apache

    Volvemos hacer el mismo "Wrapper" cambiando el fichero que ahora nos interesa para buscar usuarios y contraseñas potenciales y entrar al sistema

    Lo introducimos en la variable data en Burp Suite y decodeamos la informacion que nos devuelve

    Ya podemos ver informacion potencialmente peligrosa , que nos proporciona un usuario y una contraseña , al principio inspeccionando la pagina web habia 3 comentarios y uno de ellos era de un usuario llamado "development" por lo que vamos a probar esta contraseña con dicho usuario

    ## Flag User.txt:

    Si intentamos acceder al SSH mediante el usuario "development" y la contraseña potencial que tenemos podemos entrar dentro de la maquina y obtener el flag del usuario

    ## Escalada de Privilegios:

    El usuario development no tiene permisos de Root , por lo que mediante el comando sudo -l , vamos a buscar permisos SUID , que nos permitan realizar funciones de usuario root siendo usuarios no privilegiados

    Nos reporta un fichero escrito en Python que es un validor de Ticket , si procedemos abrir dicho script y entender su funcionamiento

    Podemos ver que analiza un fichero en extension .md , que necesita una ciertas lineas necesarias para poder ejecutar la validacion del ticket

    Hay que crear un ticket en formato .md y que nos proporcione una shell con permisos de Root

    Ahora si procedemos a ejecutar el validador de ticket y le pasamos nuestro ticket malicioso vamos a obtener una shell como Root y ya podremos visualizar el flag del usuario Root

    Ya tendriamos la Maquina Bounty Hunter Explotada , una maquina de una dificultad Facil!